package main

import (
	"fmt"
	"math"
)

func main() {
	s := "hello안녕하세요"
	//	for i := 0;i < len(s);i++ {
	//		fmt.Printf("%v(%c)",s[i],s[i])
	//	}
	//len求得的是byte字节的数量
	n := len(s)
	fmt.Println(n)

	//for _, c := range s {
	//	fmt.Printf("%c\n", c) //%c 字符
	//}
	//字符串不可修改，只能通过转换切片后强转
	s2 := "白萝卜" //rune类型
	s3 := []rune(s2)
	s3[0] = '红'                    //替换字符
	fmt.Printf("%s\n", string(s3)) //通过string函数转换成字符串类型
	s4 := "look"                   //byte类型
	s5 := []byte(s4)
	s5[0] = 'h'
	fmt.Printf("%s", s5)
	//类型转换，GO只能强制转换，不能隐式转。T(表达式),表达式可以是变量，函数返回值和复杂算子
	var a, b = 3, 4
	var c int
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Printf("%d", c) //竟然没输出
}
